#learning ggplot2 to visualize data
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.0.3
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v tibble 3.0.4 v dplyr 1.0.2
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.0
## v purrr 0.3.4
## Warning: package 'tibble' was built under R version 4.0.3
## Warning: package 'tidyr' was built under R version 4.0.3
## Warning: package 'readr' was built under R version 4.0.3
## Warning: package 'forcats' was built under R version 4.0.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks plotly::filter(), stats::filter()
## x dplyr::lag() masks stats::lag()
library(dplyr)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
## PERSIAPKAN DATANYA DULU DIBERSIHKAN DAN DIRAPIKAN
#Importing data
internetdata <- read.csv("datainternet.csv", stringsAsFactors = FALSE)
#View data
View(internetdata)
#buang obs yang gak perlu (nama dan email)
internetdata <- internetdata %>%
select(-c("Nama", "Email")) %>%
as.data.frame()
internetdata <- internetdata%>%
select(-("Asal")) %>%
as.data.frame()
#Beberapa data dijadikan nominal
data_nominal <- (c("Sex", "Fakultas", "Pendidikan", "Device", "WiFi",
"Koneksi", "Alasan", "MedSos", "Lembur", "Layanan",
"Situs", "Waktu", "Tempat"))
internetdata[data_nominal] <- lapply(internetdata[data_nominal], function(x){factor(x)})
#Obs Durasi dijadikan ordinal aja biar bisa dianalisis
internetdata$Durasi <- factor(internetdata$Durasi,
ordered = T,
levels = c("1- 3 Jam",
"4 - 7 Jam",
"> 7 Jam"))
internetdata <- as_tibble(internetdata)
#cek dulu
glimpse(internetdata)
## Rows: 446
## Columns: 20
## $ Sex <fct> Laki-laki, Laki-laki, Laki-laki, Laki-laki, Perempuan, L...
## $ Usia <int> 19, 19, 18, 19, 19, 18, 18, 18, 18, 18, 18, 18, 20, 17, ...
## $ Fakultas <fct> FITK, FITK, FITK, FITK, FITK, FITK, FITK, FITK, FITK, FI...
## $ Pendidikan <fct> MA, MA, SMA, Pondok Pesantren, MA, SMA, MA, Pondok Pesan...
## $ Durasi <ord> > 7 Jam, 4 - 7 Jam, 4 - 7 Jam, > 7 Jam, 4 - 7 Jam, 4 - 7...
## $ Device <fct> Smart Phone, Smart Phone, Smart Phone, Smart Phone, Smar...
## $ WiFi <fct> Ada dong!, Ada dong!, Ada dong!, Ada dong!, Ada dong!, A...
## $ Koneksi <fct> Paket Data, Paket Data, WiFi, Paket Data, WiFi, Paket Da...
## $ Alasan <fct> Bersosialisasi, Bersosialisasi, Mengisi waktu luang, Ter...
## $ MedSos <fct> WhatsApp, WhatsApp, Instagram, WhatsApp, WhatsApp, Insta...
## $ Lembur <fct> Iya, Iya, Iya, Tidak, Tidak, Tidak, Tidak, Iya, Iya, Iya...
## $ Layanan <fct> Browsing, Chatting, Media Sosial, Nonton vidio, Media So...
## $ Situs <fct> "Gramedia", "Facebook.com", "Seni ", "Wikipedia", "Berit...
## $ Waktu <fct> Menunggu sesuatu (contoh : menunggu dosen), Menjelang ti...
## $ Tempat <fct> Kamar, Kamar, Kamar, Kalau lagi boring, Kamar, Dimanapun...
## $ IA <int> 21, 40, 86, 18, 13, 23, 36, 2, 54, 40, 47, 29, 54, 20, 3...
## $ Depresi <int> 14, 18, 19, 2, 2, 0, 41, 1, 0, 0, 9, 4, 10, 36, 4, 8, 8,...
## $ Anxiety <int> 14, 17, 29, 8, 3, 2, 35, 2, 7, 7, 15, 5, 13, 42, 8, 16, ...
## $ Stress <int> 14, 21, 35, 7, 1, 0, 40, 0, 3, 1, 18, 9, 14, 42, 5, 18, ...
## $ Addicted <chr> "Nonaddic", "Addicted", "Addicted", "Nonaddic", "Nonaddi...
## SAATNYA VISUALISASI
# Demografi responden kita
jeniskelamin <- internetdata %>%
ggplot(aes(x = Sex, fill = Sex)) +
geom_bar() +
theme(legend.position = "none", title = element_text(size = 10))
jeniskelamin

fakultas <- internetdata %>%
ggplot(aes(x = Fakultas, fill = Fakultas)) +
geom_bar() +
theme(legend.position = "none", title = element_text(size = 10))
#atau langsung digabung jadi satu chart aja
sex_fac <- internetdata %>%
ggplot(aes(x = Fakultas, fill = Sex)) +
geom_bar(alpha = 3/5) +
theme(title = element_text(size = 10))
sex_fac

#dijadikan interaktif bisa? bisa dong bosq~
library(plotly)
ggplotly(sex_fac)
#di-Facet Wrap juga bisa? Bisa
konek_sex_fac <- internetdata %>%
ggplot(aes(x = Koneksi, fill = Sex)) +
theme_bw() +
facet_wrap(~ Fakultas) +
geom_bar(alpha = 3/5) +
labs(title = "Karakteristik Responden Survey",
subtitle = "Dipecah dari Fakultas, menurut Jenis Kelamin, dan Koneksi.",
y = "Frekuensi",
X = "Fakultas")
#Persentase
#Berapa banyak persentase responden yang masuk kategori adiksi dan tidak
internetdata %>%
ggplot(aes(x = Addicted,
y = ..count.. / sum(..count..),
fill = Addicted)) +
geom_bar(alpha = 3/5) +
labs(title = "Persentase Kategori Adiksi",
y = "Persen",
x = "Kategori") +
scale_y_continuous(labels = scales::percent)

#Angka persentase tepatnya
prop.table(table(internetdata$Addicted))
##
## Addicted Nonaddic
## 0.4529148 0.5470852
##hasilnya: Addicted Nonaddic
## 0.4529148 0.5470852
#persentase responden adiksi perfakultas bagaimana?
facet_fac_addi <- internetdata %>%
ggplot(aes(x = Addicted,
y = ..count.. / sum(..count..),
fill = Sex)) +
theme_bw() +
facet_wrap(~ Fakultas) +
geom_bar(alpha = 3/5) +
labs(title = "Persentase Adiksi per Fakultas",
x = "Kategori",
y = "Frekuensi") +
scale_y_continuous(labels = scales::percent)
ggplotly(facet_fac_addi)
## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
#Dibalik juga bisa (maksudnya, pake kategori adiksi tapi isinya fakultas )
internetdata %>%
ggplot(aes(Addicted, fill = Fakultas)) +
geom_bar(alpha = 3/5, position = "identity") +
labs(y = "Responden Survey",
x = "Kategori",
title = "Frekuensi Responden Kecanduan Internet")

#Bagaimana kategori adiksi dari segi koneksi?
ggplot(internetdata, aes(x = Koneksi, fill = Sex)) +
theme_bw() +
facet_wrap(~ Addicted) +
geom_bar(alpha = 4/5) +
labs(y = "Jumlah Responden",
title = "Kategori 'Adiksi' dan 'Tidak' Dipecah dari Koneksi",
subtitle = "frekuensi jenis Kelamin dalam kategori addicted dan nonaddicted berdasarkan koneksi yang digunakan")

internetdata %>%
ggplot(aes(x = Koneksi, fill = Koneksi)) +
theme_bw() +
geom_bar() +
labs(y = "Jumlah Subjek",
title = "Frekuensi Addicted and Non-addicted by Koneksi") +
theme(legend.position = "none")
